//WMPHook.h
#include <shlobj.h>
#include <mfidl.h>

#pragma once

HRESULT WINAPI WMPSHOpenFolderAndSelectItems(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags);
HRESULT WINAPI WMPCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID FAR* ppv);
LRESULT WINAPI WMPCallWindowProcW(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
LRESULT WINAPI WMPDispatchMessageW(const MSG *lpMsg);
HMENU WINAPI WMPLoadMenuW(HINSTANCE hInstance, LPCWSTR lpMenuName);
INT_PTR WINAPI WMPDialogBoxParamW(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);
HRESULT WINAPI WMPMFCreateMediaSession(IMFAttributes* pConfiguration, IMFMediaSession** ppMediaSession);
HRESULT WINAPI WMPMFCreatePMPMediaSession(DWORD dwCreationFlags, IMFAttributes *pConfiguration, IMFMediaSession** ppMediaSession, IMFActivate **ppEnablerActivate);
HRESULT WINAPI WMPQuartzGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv);
void WINAPI WMPSetPrevAddress(LPCSTR method, void* proc);
